Cloud computing refers to the process of utilizing multiple pieces of hardware over a network to perform specific computing tasks. Cloud computing typically employs virtualized resources. A virtual resource is a piece of software configured to emulate a specific piece of hardware or alternatively may serve to abstract a resource that may have been accessed or addressed in a concrete manner. The combination of hardware resources and virtual resources is abstracted to a user or client system. Thus the user or client system does not require knowledge of the underlying workings of the cloud computing system. The client system may simply send a processing request to a supplied process and subsequently receive the designated processing result.
Cloud computing systems may be used for a variety of purposes. For example, Software as a Service (SaaS) is a model of software deployment in which a user accesses and uses a piece of software from a remote location. Instead of purchasing a license to operate the software on a local machine, a user may be charged by usage of the software which is available over the cloud computing system.
As the complexity of cloud computing systems increases, the process of accurately modeling the cloud computing system increases as well. Accurate modeling of the system may provide several benefits. For example, an accurate model may help with performance analysis and optimization. An accurate model may also help with usage data which may be used for billing.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.